package com.liyueheng.util

import org.apache.spark.SparkConf
import org.apache.spark.sql.SparkSession

object SparkConf {
  val setMaster = ConfigLoader.getString("spark.master") // 获取 Spark 的 master 配置
  def createSparkSession(appName: String): SparkSession = {
    val sparkConf = new SparkConf()
      .setAppName(appName) // 设置应用程序名称
      .setMaster(setMaster) // 设置运行模式，local[*] 表示在本地使用多线程运行，适用于小规模测试


    // 创建 SparkSession
    val spark = SparkSession.builder()
      .config(sparkConf) // 配置 SparkConf
      .enableHiveSupport() // 启用 Hive 支持 (如果需要)
      .getOrCreate()

    // 日志级别
    spark.sparkContext.setLogLevel("ERROR")

    // 返回创建的 SparkSession
    spark
  }

  def stopSparkSession(spark: SparkSession): Unit = {
    if (spark != null) {
      spark.stop()
    }
  }
}
